//
// Created by tcj on 2021/12/8.
//

#ifndef SERVER_FRAMEWORK_UTIL_H
#define SERVER_FRAMEWORK_UTIL_H
#include "pthread.h"
#include "sys/types.h"
#include "sys/syscall.h"
#include "stdio.h"
#include "vector"
#include "string.h"
#include "log.h"
#include "sys/time.h"

namespace sylar{
    pid_t GetThreadId();
    u_int32_t GetFirberid();


//    在linux中c/c++环境中，当程序产生错误的时候会产生core文件，可以利用gdb调试看到出错的调试信息--出问题时调用栈信息
//    也可以使用代码输出调用栈的信息
    void Backtrace(std::vector<std::string>& bt,int size=64,
                                    int skip=1);
    std::string BacktraceTostring(int size=64,int skip=2,
                                    const std::string& prefix="");

    //时间ms
    uint64_t GetCurrentMS();
    uint64_t GetCurrentUS();
}


#endif //SERVER_FRAMEWORK_UTIL_H
